package collection;

import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class SortListDemo2 {
    public static void main(String[] args) {
        List<Point> list=new ArrayList<>();
        list.add(new Point(0,1));
        list.add(new Point(3,2));
        list.add(new Point(4, 0));
        list.add(new Point(1,5));
        list.add(new Point(0,0));

        System.out.println(list);
        //Collections.sort(list,)
        //System.out.println(list);

        Comparator<Point> c=new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                int len1=o1.getX()*o1.getX()+o1.getY()*o1.getY();
                int len2=o2.getX()*o2.getX()+o2.getY()*o2.getY();
                //return len1-len2;
                return  len2-len1;

            }
        };
        Collections.sort(list,c);
        System.out.println(list);

        //lambda表达式方法
        Comparator<Point> c1=(o1,o2)->
                o1.getX()* o1.getX()+ o1.getY()* o1.getY()-o2.getX()* o2.getX()-o2.getY()* o2.getY();
        Collections.sort(list,c1);
        System.out.println(list);
        //无侵入性写法
        Collections.sort(list,(o1,o2)->
                o1.getX()* o1.getX()+ o1.getY()* o1.getY()-o2.getX()* o2.getX()-o2.getY()* o2.getY());
        System.out.println(list);







    }
}
